package com.stanford.ml.naivebayes;

import java.util.Map;

/**
 * Instance is a single row in the training set. User is an instance of
 * such information, with attributes like age, gender or tagging interest
 * 
 * @author Fatih Sunor
 *
 */
public interface Instance {
	
	/**
	 * Returns the array of attributes
	 * @param tagMax 
	 * @return Attribute array
	 */
	public Attribute[] getAttributes(Map<String, Integer> tagMax);
	
	/**
	 * Returns the class label for a particular instance
	 * Rating either -1 or 1 is an instance of it
	 * @return the class label
	 */
	public ClassLabel getClassLabel();

	/**
	 * Returns attributes as in the original data set
	 * @return Attribute[]
	 */
	public Attribute[] getAttributesWithNominalTag();

}
